home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 2
/
CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso
/
magazine
/
amiga_e
/
peps
/
peps.doc
< prev
next >
Wrap
Text File
|
1994-05-02
|
6KB
|
176 lines
Peps v0.1 © 1994 NasGûl
-----------------------
Peps make the same job than EPP,the only restriction is that
your must have one PMODULE by line.
PMODULE 'Mod1' this is ok.
PMODULE 'Mod2'
PMODULE 'Mod1';PMODULE 'Mod2' it's bad.
Arguments:
---------
Esource - Source code (.e not added).
EC/K - EC options (-e by default).
PS=PubScreenName/K - The name of PepsPubScreen (Workbench by def).
TF=TempFile/K - The Name of the temp file (T:PepsMain.e by def).
AP=ArexxPortName/K - The Arexx Port name of Peps (PepsPort by def).
EN=ExecName/K - The Exec Name (the name of your source without .e by def).
ED=EditorName/K - The name of your text editor ( ED by def, [] Supported).
EP=EDitorPortName/K - The Name of the Arexx Port of your editor.
ER=ErrorArexxScriptName/K - the name of the Arexx script to launch when a error is found (PepsError.rexx by def).
MF=MenuFile/K - the menu file of peps (nomenu if not present) .
DT=DelTemp/S - Delete tempfile (FALSE by def).
JE=JustEC/S - Read source file,make Tempfile,compile with EC and exit (FALSE by def).
IC=InsComment/S - Insert comment to TempFile (FALSE by def).
Hires/S - Screen Hires (FALSE by def (screen is SUPER_HIRES by def)).
DF=PubScreenByDef/S - The screen of Peps is The Pubscreen by default (FALSE by def).
SG=PubScreenShanghai/S - for the screen of Peps (FALSE by def).
RETRICTIONS:
-----------
- Comment outside proc are in the gobals defintions,so put your comments in the proc.
- The INCBIN fonction is added to the global def (sorry).
- you must run Peps in the same directory than your source code.
- if a pmodule don't exists,it's not add.
- the only keyword reconnise by Peps are:
PMODULE,PROC,ENDPROC
- All lines before the first proc are added to the globals definitions.
- All line outside proc are added to the global definitions.
Use.
---
there are only 4 Arexx command:
EC - Make compilation.
ECOPT - Change EC options.
FINDPROC - Find if the procedure is present.
QUIT - Quit Peps.
Ex:
>rx "Address 'PepsPort' EC"
Your editor is running with the Exec fonction SystemTagList(),8000 for stack and
the priority at 0.
Parsing Errors.
--------------
You can't have 2 Pmodule with the same name,but Peps add to the TempFile only
new procedure.
Ex:
Mod1.e look like this: Mod2.e look like this:
PROC p_P1().. PROC p_P3()...
PROC p_P2().. PROC p_P4()...
PROC p_P3().. PROC p_P5()...
The tempfile:
PROC p_P1()..
PROC p_P2()..
PROC p_P3().. --> This is the proc of the file Mod1.e (First found,first add).
PROC p_P4()..
PROC p_P5()..
With the option -e EC return the number line of the error.So i decided to make a parsing
fonction,it's the script arexx (see Peps Options).The arguments passed to this script
are:
<the fullname of the file> <the name of the file> <the name proc (with the word PROC)>
ex:
5.Hd1:Amiga_E/Sources/Prg>Peps Prg.e ed "edg" dt
EC return error 450 and your Main file look like this
/* Globals Def */
PMODULE 'Mod1'
PMODULE 'Mod2'
PMODULE 'Mod3' /* suppose that the error occur in this Pmodule */
PROC .....
The return String look like this:
Hd1:Amiga_e/Sources/Prgs/Mod3.e Mod3.e PROC openLib()
With this arg you can look if the window is present,if not you can load them,
and jump the the good proc (see directory rexx:).
The fonction FINDPROC.
---------------------
the return string is the same than the parsing error (without the proc name).
The MenuFile.
------------
the parameters must be enclosed by ".
Ex:
MENU "Menu title text"
ITEM "Menu item text" KEY "A" TYPE "CLI/REXX/EDPORT" COM "<command>"
SUBI "Menu item text" KEY "B" TYPE "CLI/REXX/EDPORT" COM "<command>"
if you want to make a item with subitem:
ITEM "Just the Title"
SUBI ........
SUBI .........
MENU,ITEM,SUBI,KEY,TYPE and COMM must be in uppercase.
CLI - launch the command (must be run >nil: <nil: in the command line).
REXX - run a arexx script.
<< WARNING >> DON'T CALL THE PepsPort IN MACROS.
YOU MUST CALL THE PORT IN ANOTHER PROCESS THAN PEPS. (like your text editor or a shell).
EDPORT - send the command directly to the arexx editor port (if it's present in the command line invocation).
So you can have the same menu in your editor and Peps.
Programmers.
------------
(---) OBJECT eubase
( 0) pmodulelist:LONG /* The file list (lh) of (filenode) (mainfile and pmodule). */
( 4) proclist:LONG /* the proc list (lh) of (ln) (just all the name proc like "PROC <name>(" */
( 8) infolist:LONG /* the info list (lh) of (ln) (for the error listview) */
(---) ENDOBJECT /* SIZEOF=12 */
(---) OBJECT filenode
( 0) node:substructure /* node.name is the name of the file (STRING) */
( 14) deflist:LONG /* the globals def of the file (lh) of (ln) */
( 18) proclist:LONG /* the proc list of the file (lh) of (procnode) */
(---) ENDOBJECT /* SIZEOF=22 */
(---) OBJECT procnode
( 0) node:substructure /* node.name is the name of the proc (like the eubase.proclist) (STRING) */
( 14) buffer:LONG /* the data of the proc (begin at PROC and stop at ENDPROC without the last "\n" */
( 18) length:LONG /* the length of data */
(---) ENDOBJECT /* SIZEOF=22 */
Future:
------
Parsing Unreferenced Proc ?.